class Solution {
public:
    string minWindow(string s, string t) {
        int n=t.size(),len=INT_MAX,r,l,k=0;
        vector<int>arr(256,0);
        for(auto i : t) arr[i]++;
        for(l=0,r=0;r<s.size();r++)
        {
            if(arr[s[r]]-->0) n--;
            if(n==0)
            {
                while(l<s.size()&&arr[s[l]]<0)
                {
                    arr[s[l]]++;
                    l++;
                }
                if(len>r-l+1) 
                {
                    k=l;
                    len=r-l+1;
                }
            }
        }
        return len==INT_MAX?"":s.substr(k,len);
    }
};